home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / TRANSTUB.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  6.8 KB  |  238 lines

  1. 10  'TRANSTUB - Stubs - Open-Wire Lines - 20 JUL 95 rev. 30 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
  4. 40  COMMON EX$,PROG$
  5. 50  CLS:KEY OFF:COLOR 7,0,1
  6. 60  UL$=STRING$(80,205)
  7. 70  U1$="####.###"
  8. 80  PI=3.14159
  9. 90  DIM GA(40)   'AWG wire sizes
  10. 100  '
  11. 110  '.....AWG calculator
  12. 120  K=(0.46/0.005)^(1/39)    'increment factor
  13. 130  FOR Z=1 TO 40
  14. 140  KN=Z+3
  15. 150  GA(Z)=0.46/K^KN
  16. 160  NEXT Z
  17. 170  '
  18. 180  '.....start
  19. 190  CLS
  20. 200  COLOR 15,2
  21. 210  PRINT " STUBS for OPEN-WIRE TRANSMISSION LINE";
  22. 220  PRINT TAB(61);"by ";CHR$(34);"LB";CHR$(34);" Cebik W4RNL ";
  23. 230  PRINT STRING$(80,32);
  24. 240  LOCATE CSRLIN-1,20:PRINT "edited for HAMCALC by George Murphy VE3ERP"
  25. 250  COLOR 1,0:PRINT STRING$(80,223);:COLOR 7,0
  26. 260  MG=7      'margin
  27. 270  PRINT TAB(MG);
  28. 280  PRINT "Inductive (shorted) and capacitive (open) transmission line stubs"
  29. 290  PRINT TAB(MG);
  30. 300  PRINT "less than 1/4 wavelength long are very useful for introducing"
  31. 310  PRINT TAB(MG);
  32. 320  PRINT "frequency-sensitive amounts of inductance (or inductive reactance)"
  33. 330  PRINT TAB(MG);
  34. 340  PRINT "or capacitance (or capacitive reactance) into circuits. Their main"
  35. 350  PRINT TAB(MG);
  36. 360  PRINT "use is in antenna work, where they serve to load antenna elements"
  37. 370  PRINT TAB(MG);
  38. 380  PRINT "(electrically lengthen or shorten them). They also serve as"
  39. 390  PRINT TAB(MG);
  40. 400  PRINT "inductors or capacitors in matching networks."
  41. 410  PRINT
  42. 420  PRINT TAB(MG);
  43. 430  PRINT "This program allows you to calculate the length of either an"
  44. 440  PRINT TAB(MG);
  45. 450  PRINT "inductive (shorted) or capacitive (open) stub by entering the"
  46. 460  PRINT TAB(MG);
  47. 470  PRINT "frequency of interest and a reactance value, or a capacitance"
  48. 480  PRINT TAB(MG);
  49. 490  PRINT "or inductance."
  50. 500  PRINT
  51. 510  PRINT TAB(MG);
  52. 520  PRINT "You may then enter either the known line impedance (Zo) or the"
  53. 530  PRINT TAB(MG);
  54. 540  PRINT "physical dimensions (wire size and spacing) of an open-wire"
  55. 550  PRINT TAB(MG);
  56. 560  PRINT "feedline (along with its velocity factor). The program will then"
  57. 570  PRINT TAB(MG);
  58. 580  PRINT "compute the stub length."
  59. 590  PRINT
  60. 600  COLOR 0,7:LOCATE CSRLIN,22
  61. 610  PRINT " Press 1 to continue or 0 to EXIT...."
  62. 620  COLOR 7,0
  63. 630  Z$=INKEY$:IF Z$=""THEN 630
  64. 640  IF Z$="0"THEN CLS:CHAIN GO$
  65. 650  IF Z$="1"THEN 680
  66. 660  GOTO 630
  67. 670  '
  68. 680  '.....units of measure
  69. 690  VIEW PRINT 4 TO 24:CLS:VIEW PRINT:LOCATE 4
  70. 700  PRINT " Press number in < > to choose standard units of measure:"
  71. 710  PRINT UL$;
  72. 720  PRINT "  < 1 > Metric"
  73. 730  PRINT "  < 2 > U.S.A./Imperial"
  74. 740  Z$=INKEY$
  75. 750  IF Z$="1"THEN UM=25.4:GOTO 780
  76. 760  IF Z$="2"THEN UM=1:GOTO 780
  77. 770  GOTO 740
  78. 780  GOTO 850
  79. 790  '
  80. 800  '.....format input line
  81. 810  LOCATE CSRLIN-1:PRINT SPC(7);
  82. 820  LOCATE CSRLIN,47:PRINT STRING$(7,".");USING U1$;Z;
  83. 830  RETURN
  84. 840  '
  85. 850  '.....clear screen
  86. 860  VIEW PRINT 4 TO 24:CLS:VIEW PRINT:LOCATE 4
  87. 870  '
  88. 880  INPUT " ENTER: Frequency of interest...................(MHz)";F
  89. 890  Z=F:GOSUB 800:PRINT " MHz":FB=F*10^6
  90. 900  '
  91. 910  PRINT UL$;
  92. 920  LN=CSRLIN-1
  93. 930  PRINT" Press a number in < > to select a known value of the line @";F;"MHz:"
  94. 940  PRINT UL$;
  95. 950  PRINT "  < 1 > Inductive Reactance"
  96. 960  PRINT "  < 2 > Capacitive Reactance"
  97. 970  PRINT "  < 3 > Inductance"
  98. 980  PRINT "  < 4 > Capacitance"
  99. 990  A$=INKEY$:IF A$=""THEN 990
  100. 1000  IF A$="1"THEN GOSUB 1060:GOTO 1140
  101. 1010  IF A$="2"THEN GOSUB 1060:GOTO 1220
  102. 1020  IF A$="3"THEN GOSUB 1060:GOTO 1090
  103. 1030  IF A$="4"THEN GOSUB 1060:GOTO 1170
  104. 1040  GOTO 990
  105. 1050  '
  106. 1060  VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
  107. 1070  RETURN
  108. 1080  '
  109. 1090  '.....inductance to inductive reactance
  110. 1100  INPUT " ENTER: Inductance...............................(>H)";L
  111. 1110  Z=L:GOSUB 800:PRINT " >H"
  112. 1120  LB=L*9.99E-07:LX=((2*PI)*(FB*LB)):T=1:GOTO 1250
  113. 1130  '
  114. 1140  INPUT " ENTER: Inductive reactance....................(ohms)";LX
  115. 1150  Z=LX:GOSUB 800:PRINT " -":T=1:GOTO 1250
  116. 1160  '
  117. 1170  '.....capacitance to capacitive reactance
  118. 1180  INPUT " ENTER: Capacitance..............................(pF)";C
  119. 1190  Z=C:GOSUB 800:PRINT " pF"
  120. 1200  CB=C*(0):CX=1/((2*PI)*(FB*CB)):T=0:GOTO 1250
  121. 1210  '
  122. 1220  INPUT " ENTER: Capacitive reactance...................(ohms)";CX
  123. 1230  Z=CX:GOSUB 800:PRINT " -":T=0:GOTO 1250
  124. 1240  '
  125. 1250  '.....stub construction
  126. 1260  PRINT UL$;
  127. 1270  LN=CSRLIN-1
  128. 1280  PRINT " Press number in < > to select known characteristics of line:"
  129. 1290  PRINT UL$;
  130. 1300  PRINT "  < 1 > Feedline characteristic impedance (Zo)"
  131. 1310  PRINT "  < 2 > Wire size and spacing of open-wire feedline"
  132. 1320  B$=INKEY$
  133. 1330  IF B$="1"THEN GOSUB 1060:GOTO 1370
  134. 1340  IF B$="2"THEN GOSUB 1060:GOTO 1430
  135. 1350  GOTO 1320
  136. 1360  '
  137. 1370  INPUT " ENTER: Impedance (Zo) of the line..............(ohms)";ZO
  138. 1380  Z=ZO:GOSUB 800:PRINT " -"
  139. 1390  INPUT " ENTER: Velocity factor (decimal) of the line.........";VF
  140. 1400  Z=VF:GOSUB 800
  141. 1410  IF T>0 THEN 1720 ELSE 1830
  142. 1420  '
  143. 1430  IF UM=1 THEN V$="in."ELSE V$="mm."
  144. 1440  PRINT " ENTER: Open-wire line spacing..................(";V$;")";:INPUT SP
  145. 1450  Z=SP:GOSUB 800:PRINT " ";V$:SP=SP/UM         'sp=spacing in inches
  146. 1460  '
  147. 1470  PRINT UL$;
  148. 1480  LN=CSRLIN-1
  149. 1490  PRINT " Press number in < > to choose method of wire size selection:"
  150. 1500  PRINT UL$;
  151. 1510  PRINT "  < 1 > Diameter (";V$;")"
  152. 1520  PRINT "  < 2 > AWG size"
  153. 1530  Z$=INKEY$
  154. 1540  IF Z$="1"THEN GOSUB 1060:GOTO 1580
  155. 1550  IF Z$="2"THEN GOSUB 1060:GOTO 1620
  156. 1560  GOTO 1530
  157. 1570  '
  158. 1580  PRINT " ENTER: Wire diameter...........................(";V$;")";:INPUT Y
  159. 1590  Z=Y:GOSUB 800:PRINT " ";V$:DIA=Y/UM         'sp=spacing in inches
  160. 1600  GOTO 1680
  161. 1610  '
  162. 1620  INPUT " ENTER: Wire gauge.................................AWG #";Y
  163. 1630  Z=Y:GOSUB 800:LOCATE CSRLIN,54:PRINT USING "####";Y;:PRINT " AWG"
  164. 1640  DIA=GA(Y)
  165. 1650  PRINT "        Wire diameter................................";
  166. 1660  PRINT USING U1$;DIA*UM;:PRINT " ";V$
  167. 1670  '
  168. 1680  ZO=(276*0.43429)*(LOG((2*SP)/DIA))
  169. 1690  INPUT " ENTER: Velocity factor (decimal) of line..............";VF
  170. 1700  Z=VF:GOSUB 800
  171. 1710  IF T>0 THEN 1720 ELSE 1830
  172. 1720  '.....inductive stub
  173. 1730  '
  174. 1740  IF ZO=0 THEN ZO=9.8E-08
  175. 1750  LR=ATN(LX/ZO):LDG=(180*LR)/PI
  176. 1760  IF F=0 THEN F=9.8E-08
  177. 1770  LFT=(VF*LDG)/(0.366*F)
  178. 1780  IF UM=25.4 THEN UMM=0.3048:V$=" metres"ELSE UMM=1:V$=" feet"
  179. 1790  PRINT "        Length of SHORTED (inductive) STUB...........";
  180. 1800  PRINT USING U1$;LFT*UMM;:PRINT V$
  181. 1810  GOTO 1930
  182. 1820  '
  183. 1830  '.....capacitive stub
  184. 1840  IF CX=0 THEN CX=9.8E-08
  185. 1850  LR=ATN(ZO/CX):LDG=(180*LR)/PI
  186. 1860  IF F=0 THEN F=9.8E-08
  187. 1870  LFT=(VF*LDG)/(0.366*F)
  188. 1880  IF UM=25.4 THEN UMM=0.3048:V$=" metres"ELSE UMM=1:V$=" feet"
  189. 1890  PRINT "        Length of OPEN (capacitive) STUB.............";
  190. 1900  PRINT USING U1$;LFT*UMM;:PRINT V$
  191. 1910  GOTO 1930
  192. 1920  '
  193. 1930  M=16
  194. 1940  IF V$=" metres"THEN V$=" m."
  195. 1950  LOCATE 11
  196. 1960  COLOR 0,7
  197. 1970  LOCATE CSRLIN,M:PRINT "                                                  "
  198. 1980  LOCATE CSRLIN,M:PRINT "    VARPTRSOUND> THENTHENTHEN<0xCB!>THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN  "
  199. 1990  LOCATE CSRLIN,M:PRINT "    CALL      SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN <SOUNDCOLOR          "
  200. 2000  LOCATE CSRLIN,M:PRINT " Line                                Open Stub    "
  201. 2010  LOCATE CSRLIN,M:PRINT "    CALL      KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN <SOUND'          "
  202. 2020  LOCATE CSRLIN,M:PRINT "    CLSSOUND> THENTHENTHENLOCATETHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN  "
  203. 2030  LOCATE CSRLIN,M:PRINT "                                                  "
  204. 2040  LOCATE CSRLIN,M:PRINT "           CALLDEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLCALL             "
  205. 2050  LOCATE CSRLIN-1,M+17:PRINT USING U1$;LFT*UMM;:PRINT V$;" "
  206. 2060  LOCATE CSRLIN,M:PRINT "                                                  "
  207. 2070  COLOR 7,0
  208. 2080  PRINT
  209. 2090  PRINT TAB(7);
  210. 2100  PRINT "The line should be as close to horizontal as possible with the stub"
  211. 2110  PRINT TAB(7);
  212. 2120  PRINT "extending vertically from the line."
  213. 2130  IF T=0 THEN 2200
  214. 2140  COLOR 0,7
  215. 2150  LOCATE CSRLIN-10,M+36:PRINT "CLOSE"
  216. 2160  LOCATE CSRLIN,   M+36:PRINT "OPENShorted Stub"
  217. 2170  LOCATE CSRLIN,   M+36:PRINT "LOAD"
  218. 2180  COLOR 7,0
  219. 2190  '
  220. 2200  '....end
  221. 2210  GOSUB 2250
  222. 2220  GOTO 180
  223. 2230  END
  224. 2240  '
  225. 2250  'HARDCOPY
  226. 2260  GOSUB 2370:LOCATE 25,2:COLOR 14,6
  227. 2270  PRINT " Press 1 to print screen, 2 to print screen & ";
  228. 2280  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  229. 2290  Z$=INKEY$:IF Z$="3"THEN GOSUB 2370:RETURN
  230. 2300  IF Z$="1"OR Z$="2"THEN GOSUB 2370:GOTO 2320
  231. 2310  GOTO 2290
  232. 2320  FOR QX=1 TO 24:FOR QY=1 TO 80
  233. 2330  LPRINT CHR$(SCREEN(QX,QY));
  234. 2340  NEXT QY:NEXT QX
  235. 2350  IF Z$="2"THEN LPRINT CHR$(12)
  236. 2360  GOTO 2260
  237. 2370  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  238.